#!/bin/bash
#

smbcfg=/etc/smbridge.cfg
ipaddr=
port=

Usage()
{
	echo "Usage: `basename $0` [-h] [--ip <ip>] [--port <port>] [-f <config file>]"
	echo "If not provide config file, assume the default is /etc/smbridge.cfg."
	exit 0
}

setsmbcfg()
{
	item=$1
	itemval=$2
	cfgfile=$3
	orgLN=	

	tmpf=./tmp`date +%s`
	touch $tmpf
	while read LINE
	do
		# delete leading blankspaces
		orgLN=$LINE
		LINE=${LINE##' '}
		case $LINE in
			"#"*)
				printf "$orgLN\n" >> $tmpf
				;;
			"$item"*)
				printf "$item=$itemval\n" >> $tmpf
				;;
			*)
				printf "$orgLN\n" >> $tmpf
				;;
		esac
	done < $cfgfile	
	cp -af $tmpf $cfgfile	
	rm -f $tmpf
}

paras=$#

[ $paras -eq 0 ] && Usage

while [ $paras -gt 0 ]
do
	case $1 in
		-h|--help|-help)
			Usage
			;;
		-f)
			paras=`expr $paras - 1`
			shift
			smbcfg=$1
			paras=`expr $paras - 1`
			shift
			;;
		-ip|--ip)
			paras=`expr $paras - 1`
			shift
			ipaddr=$1
			paras=`expr $paras - 1`
			shift
			;;
		-port|--port)
			paras=`expr $paras - 1`
			shift
			port=$1
			paras=`expr $paras - 1`
			shift
			;;
		*)
			echo "Unknown option, ABORT!"
			exit 1
			;;
	esac
done

[ ! -f $smbcfg ] && echo "Error: $smbcfg doesn't exist." && exit 1

if [ "$ipaddr" != "" ]; then
	setsmbcfg ip $ipaddr $smbcfg
fi

if [ "$port" != "" ]; then
	setsmbcfg port $port $smbcfg
fi

echo "Now restart daemon to activate the new configuration ..."
[ -x /etc/init.d/smbridge ] && /etc/init.d/smbridge restart
